package com.swyc.osschat.Test.designMode.appearance.run;

import com.swyc.osschat.Test.designMode.appearance.impl.XiaoAi;

/**
 * @description Java 外观模式
 * 一、定义
 *  外观模式又称门面模式，是一种通过多个复杂的子系统提供一个一致的接口，而使这些子系统更加容易被访问的模式，该模式对外有一个统一接口，外部不用关心子系统的具体细节，这样会大大降低应用程序的复杂度，提高了程序的可维护性。
 *  主要角色：
 *      外观角色：为多个子系统对外提供一个共同的接口。
 *      子系统：实现系统的部分功能，客户可以通过外观角色访问它。
 * 二、代码实现
 *  举例：比如我每天下班回家都要开灯，打开电视，打开空调，但是这个过程我需要三步才能完成，所以我买了一个小爱同学，由小爱同学来帮我打开灯电视空调。其中灯，电视，空调就是指子系统，小爱同学指外观角色，接下来看代码；
 *  外观模式降低了子系统与客户端之间的耦合度，使子系统的变化不会影响到调用它的客户类，对客户屏蔽了子系统组件，减少了客户端处理的对象数目，缺点是不符合开闭原则，修改很麻烦。当一个复杂的系统中子系统很多时，即可通过外观模式设计一个简单的接口供客户端访问。
 * @Author: z156940l@outlook.com
 * @className Test
 * @Date: 2022/7/25 17:22
 */
public class Test {
    public static void main(String[] args) {
        XiaoAi xiaoai = new XiaoAi();
        xiaoai.open();
    }
}
